import Vue from 'vue'
import App from './App.vue'
import router from '@/router/index' // 确保路径正确
import store from './store'

import ElementUI from 'element-ui'

import 'element-ui/lib/theme-chalk/index.css'

// 正确导入方式（Vue 2）
import ECharts from 'vue-echarts/components/ECharts' // 注意路径差异！
import 'echarts/lib/chart/bar' // 按需引入图表类型

import $ from 'jquery'

window.$ = $

Vue.use(ElementUI)

Vue.component('VChart', ECharts) // 注册组件（建议使用小写命名）

Vue.config.productionTip = false

// 调试检查
// console.log('路由实例:', router) // 确认路由已正确导入

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

// 将错误处理移到路由确认之后
Vue.config.errorHandler = (err, vm, info) => {
  console.error('全局错误:', err, info)
}

// 确保 router 存在再添加错误处理
if (router && router.onError) {
  router.onError((error) => {
    console.error('路由错误:', error)
    const pattern = /Loading chunk (\d)+ failed/g
    const isChunkLoadFailed = error.message.match(pattern)
    if (isChunkLoadFailed) {
      window.location.reload()
    }
  })
}

// 自动锁屏
let lockTimer
const timeout = 30 * 60 * 1000 // 30分钟

window.addEventListener('mousemove', () => {
  clearTimeout(lockTimer)
  if (store.getters.token) {
    lockTimer = setTimeout(() => {
      store.dispatch('user/lockScreen')
    }, timeout)
  }
})
